package com.data.unityplugin_market.network

import com.data.unityplugin_market.base.BaseResp
import com.data.unityplugin_market.model.req.*
import com.data.unityplugin_market.model.resp.*
import io.reactivex.Observable
import okhttp3.Address
import okhttp3.ResponseBody
import retrofit2.Call
import retrofit2.http.*
import kotlin.collections.HashMap

interface RetrofitService{

    /**
     * 握手
     */
    @POST
    fun loginBase(@Body bean:ReqLogin ,@Url url : String):Observable<BaseResp<RespLogin>>

    /**
     *  登录
     */
    @POST
    fun loginUser(@Body bean:ReqLoginUser , @Url url : String ) : Observable<ResponseBody>

    /**
     * 获取收货地址
     */
    @POST
    fun getAddressList(@Body bean : ReqGetAddress , @Url url : String ) : Observable<BaseResp<RespGetAddress>>


    /**
     * 添加收货地址
     */
    @POST
    fun addAddress(@Body bean : ReqAddAddress , @Url url : String,@QueryMap map : Map<String , String>) : Observable<BaseResp<RespAddAddress>>


    /*
     * 修改地址
     */
    @POST
    fun modifyAddress(@Body bean : ReqModifyAddress , @Url url: String,@QueryMap map : Map<String , String>) : Observable<BaseResp<RespGetAddress>>

    /**
     * 查询购物车
     */
    @POST
    fun findShoppingCartList(@Body bean : ReqGetShoppingCartList , @Url url : String ,@QueryMap map : Map<String , String>) : Observable<BaseResp<RespGetShoppingCartList>>

    /*
     *h获取订单
     */
    @POST
    fun getOrder(@Body bean : ReqGetOrder ,@Url url : String , @QueryMap map : Map<String , String>) : Observable<BaseResp<RespGetOrder>>

    /**
     * 删除商品
     */
    @POST
    fun deleteGoods(@Body bean : ReqDeleteGoods , @Url url : String , @QueryMap map : Map<String , String>): Observable<BaseResp<RespDeleteGoods>>

    /**
     * 修改购物车商品数量
     */
    @POST
    fun updateGoodsCount(@Body bean : ReqUpdateGoodsCount , @Url url : String , @QueryMap map : Map<String , String>): Observable<BaseResp<RespUpdateGoodsCount>>

    /**
     * 获取客户的信息
     */
    @POST
    fun getCustomerInfo(@Body bean : ReqGetCustomerInfo , @Url url : String , @QueryMap map : Map<String , String>): Observable<BaseResp<RespGetCustomerInfo>>

    @POST
    fun modifyPwd(@Body bean : ReqModifyPwd , @Url url : String , @QueryMap map : Map<String , String>): Observable<BaseResp<RespModifyPwd>>


}